package com.lzy.mall.ware.service.impl;

import cn.hutool.core.util.StrUtil;
import com.lzy.mall.common.utils.PageParaUtils;
import com.lzy.mall.common.utils.PageUtils;
import com.lzy.mall.ware.entity.WmsPurchase;
import com.lzy.mall.ware.entity.WmsWareOrderTask;
import com.lzy.mall.ware.dao.WmsWareOrderTaskDao;
import com.lzy.mall.ware.service.WmsWareOrderTaskService;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.query.LambdaQuery;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Map;


/**
 * 库存工作单(WmsWareOrderTask)表服务实现类
 *
 * @author lzy
 * @since 2021-08-24 19:01:51
 */
@Service
@RequiredArgsConstructor(onConstructor_ = {@Autowired})
public class WmsWareOrderTaskServiceImpl implements WmsWareOrderTaskService {
    private final WmsWareOrderTaskDao wareOrderTaskDao;

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        PageQuery pageQuery = PageParaUtils.pagePara(params);

        LambdaQuery<WmsWareOrderTask> lambdaQuery = wareOrderTaskDao.createLambdaQuery();

        String key = (String) params.get("key");
        if (StrUtil.isNotEmpty(key)){
            lambdaQuery.and(lambdaQuery.condition()
                    .andEq(WmsWareOrderTask::getOrderId,key)
            );
        }

        PageQuery<WmsWareOrderTask> page = lambdaQuery.page(pageQuery.getPageNumber(), pageQuery.getPageSize());
        return new PageUtils(page);
    }

    @Override
    public WmsWareOrderTask getById(Long id) {
        return wareOrderTaskDao.single(id);
    }

    @Override
    public void save(WmsWareOrderTask wareOrderTask) {
        wareOrderTaskDao.insertTemplate(wareOrderTask,true);
    }

    @Override
    public void update(WmsWareOrderTask wareOrderTask) {
        wareOrderTaskDao.updateTemplateById(wareOrderTask);
    }

    @Override
    public void removeBatch(List<Long> ids) {
        wareOrderTaskDao.createLambdaQuery()
                .andEq(WmsWareOrderTask::getId,ids)
                .delete();
    }

    @Override
    public WmsWareOrderTask getByOrderSn(String orderSn) {
        return wareOrderTaskDao.createLambdaQuery()
                .andEq(WmsWareOrderTask::getOrderSn,orderSn)
                .single();
    }
}
